/**
 * 小说站点信息
 * */

    
        let $table = $('#website-table'),
            $remove = $('#remove'),
            selections = [],
            key = 'Id';
        
        let pageNumber = 1, pageSize = 10;
        let pageListUrl = "/WebSites//PageList";
        
        $(function () {
            
            $table = $('#website-table'),
                $remove = $('#remove');
            
            $("#btnAdd").unbind('click').bind('click', function () {
                $("#editModelLabel").html("小说站点信息信息添加");
                $('#editModel').modal('toggle');
            });

            initTable();

            // 关键词查询
            $('input[name="search"]').bind('keydown', function (event) {
                if (event.keyCode == "13") {
                    pageNumber = 1;
                    refreshTable();
                }
            });
            
            // 搜索
            $('#btnSearch').unbind('click').bind('click', function () {
                pageNumber = 1;
                refreshTable();
            });

             // 清空查询条件
             $('#btnClear').unbind('click').bind('click', function () {
                 $('#toolbar form')[0].reset();
                 pageNumber = 1;
                 refreshTable();
             });
            
        });
        
        // 刷新表格数据
        function refreshTable() {
            $table.bootstrapTable({ url: pageListUrl });
            $table.bootstrapTable('refresh', { pageNumber: pageNumber, pageSize: pageSize });
        }
        
        // 初始化表
        function initTable() {
            
            //先销毁表格
            $table.bootstrapTable('destroy');
            
            $table.bootstrapTable({
                height: getHeight(),
                method: 'get', // 请求方式（*）
                dataType: "json", // 数据类型
                url: pageListUrl, // 请求后台地址,
                toolbar: '#toolbar', //工具按钮用哪个容器
                striped: true, // 使表格带有条纹
                uniqueId: key, // 唯一标识
                idField: key, // 标识哪个字段为id主键
                pagination: true, // 在表格底部显示分页工具栏
                pageSize: pageSize, // 分页大小
                pageNumber: pageNumber, // 当前页码
                pageList: [10, 20, 50, 100, 200, 500],
                sidePagination: "server", //表格分页的位置
                //设置为undefined可以获取pageNumber，pageSize，searchText，sortName，sortOrder
                //设置为limit可以获取limit, offset, search, sort, order
                queryParamsType: "undefined",
                queryParams: function queryParams(params) { //设置查询参数
                    var param = {
                        pageNumber: params.pageNumber,
                        pageSize: params.pageSize,
                        title: $("input[name='search']").val()
                        ,startDate: $("input[name='startDate']").val()
                        ,endDate: $("input[name='endDate']").val()
                    };
                    pageNumber = params.pageNumber;
                    return param;
                },
                columns: [
                    [
                        {
                            field: 'checked',
                            checkbox: true
                        }, {
                            title: '序号',
                            field: 'RowNumber',
                            width: 60,
                            align: 'center',
                            formatter: function (value, row, index) {
                            	var options = $table.bootstrapTable('getOptions');
                            	return options.pageSize * (options.pageNumber - 1) + index + 1;
                            }
                        }, {
                            field: 'Name',
                            title: '站点名称',
                            width: 120,
                            halign: 'center',
                            align: 'left',
                            formatter: tipsFormatter
                        }, {
                            field: 'WebUrl',
                            title: '站点地址',
                            width: 120,
                            halign: 'center',
                            align: 'left',
                            formatter: tipsFormatter
                        }, {
                            field: 'AddressObject',
                            title: '地址对象',
                            width: 120,
                            halign: 'center',
                            align: 'left',
                            formatter: tipsFormatter
                        }, {
                            field: 'AddressNext',
                            title: '下一页地址对象',
                            width: 120,
                            halign: 'center',
                            align: 'left',
                            formatter: tipsFormatter
                        }, {
                            field: 'ContentObject',
                            title: '内容对象',
                            width: 120,
                            halign: 'center',
                            align: 'left',
                            formatter: tipsFormatter
                        }, {
                            field: 'ContentNext',
                            title: '下一页内容对象',
                            width: 120,
                            halign: 'center',
                            align: 'left',
                            formatter: tipsFormatter
                        }, {
                            field: 'Encoding',
                            title: '站点编码',
                            width: 120,
                            halign: 'center',
                            align: 'left',
                            formatter: tipsFormatter
                        }, {
                            field: 'UrlCombine',
                            title: '地址是否需要组合',
                            width: 120,
                            halign: 'center',
                            align: 'right',
                            formatter: tipsFormatter
                        }, {
                            field: 'AnnotationType',
                            title: '正文类型',
                            width: 120,
                            halign: 'center',
                            align: 'right',
                            formatter: tipsFormatter
                        }, {
                            field: 'CreateTime',
                            title: '添加时间',
                            width: 105,
                            halign: 'center',
                            align: 'center',
                            formatter: function (value, row, index) {
                                return (value == null || value.length == 0) ? "" : value.toDateTimeString();
                            }
                        }, {
                            field: 'UpdateTime',
                            title: '更新时间',
                            width: 105,
                            halign: 'center',
                            align: 'center',
                            formatter: function (value, row, index) {
                                return (value == null || value.length == 0) ? "" : value.toDateTimeString();
                            }
                        }, {
                            title: '操作',
                            width: 90,
                            halign: 'center',
                            align: 'center',
                            events: operateEvents,
                            formatter: operateFormatter
                        }
                    ]
                ],
                formatLoadingMessage: function () {
                    return "请稍等，正在加载中...";
                },
                formatNoMatches: function () { //没有匹配的结果
                    return '无符合条件的记录';
                }
            });
            
            $table.find("thead").addClass("thead-dark");
            
            setTimeout(function () {
                $table.bootstrapTable('resetView');
                $('[data-toggle="tooltip"]').tooltip();
            }, 200);
            
            $table.on('check.bs.table uncheck.bs.table ' +
                'check-all.bs.table uncheck-all.bs.table', function () {
                    $remove.prop('disabled', !$table.bootstrapTable('getSelections').length);
            
                    // save your data, here just save the current page
            
                    selections = getIdSelections();
            
                    // push or splice the selections if you want to save all data selections
            
                });
            
            $remove.click(function () { // 批量删除
                var ids = getIdSelections();
                $remove.prop('disabled', true);
                BatchDelete(ids.toString()); // 批量删除
            });
            
            $(window).resize(function () {
                $table.bootstrapTable('resetView', {
                    height: getHeight()
                });
            });
        }
            
        // 获取选择项
        function getIdSelections() {
            return $.map($table.bootstrapTable('getSelections'), function (row) {
                return row[key];
            });
        }
            
        // 操作内容格式化
        function operateFormatter(value, row, index) {
            let edit = ['<a class="edit" href="javascript:void(0)" title="修改小说站点信息">',
                '<i class="glyphicon glyphicon-edit"></i>',
                '</a>'];
            
            let remove = ['  <a class="remove" href="javascript:void(0)" title="删除小说站点信息">',
                '<i class="glyphicon glyphicon-remove"></i>',
                '</a>'];
            edit = edit.concat(remove);
            return edit.join('');
        }
        
        // 操作事件响应
        window.operateEvents = {
            'click .edit': function (e, value, row, index) {
                //alert('You click edit action, row: ' + JSON.stringify(row));
            
                //debugger;
                //console.info("编辑前获取行数据：");
                console.info(row);
            
                $("#Id").val(row.Id); // 站点ID
                $("#Name").val(row.Name); // 站点名称
                $("#WebUrl").val(row.WebUrl); // 站点地址
                $("#AddressObject").val(row.AddressObject); // 地址对象
                $("#AddressNext").val(row.AddressNext); // 下一页地址对象
                $("#ContentObject").val(row.ContentObject); // 内容对象
                $("#ContentNext").val(row.ContentNext); // 下一页内容对象
                $("#Encoding").val(row.Encoding); // 站点编码
                $("#UrlCombine").val(row.UrlCombine); // 地址是否需要组合：0-不需要；1-网站地址 + 章节地址；2-小说地址 + 章节地址；
                $("#AnnotationType").val(row.AnnotationType); // 正文类型：0-文本；1-HTML；
                $("#Valid").val(row.Valid); // 是否有效：0-否；1-是；
                $("#CreateTime").val(row.CreateTime); // 添加时间
                $("#UpdateTime").val(row.UpdateTime); // 更新时间
            
                $("#editModelLabel").html("小说站点信息信息修改");
                $('#editModel').modal('toggle');
            },
            'click .remove': function (e, value, row, index) {
            Delete(row[key]); // 删除行数据
            }
        };
        
/// <summary>
/// 物理删除数据
/// </summary>

function Delete(id) {
	if (confirm("您确定要删除该小说站点信息吗？")) {
		$.ajax({
			type: "POST",
			url: "/WebSites//Delete/" + id + "?rnd=" + (Math.random() * 10),
			contentType: "application/json; charset=utf-8",
			dataType: "json",
			success: function (rst) {
				//console.info(rst);
				if (rst && rst.success) {
					refreshTable();
					modals.info(rst.Message ?? rst.message);
				} else {
					modals.error(rst.Message ?? rst.message);
				}
			}
		});
	}
}

/// <summary>
/// 批量物理删除
/// </summary>

function BatchDelete(ids) {
	if (confirm("您确定要批量删除这些小说站点信息吗？")) {
		$.ajax({
			type: "POST",
			url: "/WebSites//BatchDelete/" + ids + "?rnd=" + (Math.random() * 10),
			contentType: "application/json; charset=utf-8",
			dataType: "json",
			success: function (rst) {
				//console.info(rst);
				if (rst && rst.success) {
					refreshTable();
					modals.info(rst.Message ?? rst.message);
				} else {
					modals.error(rst.Message ?? rst.message);
				}
			}
		});
	}
}

        $(function () {

            $('#editModel').on('hidden.bs.modal', function () { // 关闭模态窗体事件
                $("#editModel form")[0].reset();
                $("#btnSave").prop("disabled", false); // 解除保存按钮禁用
                $("#editModel form input[type='hidden']").val("");
            });

            $("#btnSave").unbind("click").bind("click", function () { // 小说站点信息数据保存

                let txtId = $("#Id").val(); // 站点ID
                let txtName = $("#Name").val(); // 站点名称
                let txtWebUrl = $("#WebUrl").val(); // 站点地址
                let txtAddressObject = $("#AddressObject").val(); // 地址对象
                let txtAddressNext = $("#AddressNext").val(); // 下一页地址对象
                let txtContentObject = $("#ContentObject").val(); // 内容对象
                let txtContentNext = $("#ContentNext").val(); // 下一页内容对象
                let txtEncoding = $("#Encoding").val(); // 站点编码
                let txtUrlCombine = $("#UrlCombine").val(); // 地址是否需要组合：0-不需要；1-网站地址 + 章节地址；2-小说地址 + 章节地址；
                let txtAnnotationType = $("#AnnotationType").val(); // 正文类型：0-文本；1-HTML；
                let txtValid = $("#Valid").val(); // 是否有效：0-否；1-是；
                let txtCreateTime = $("#CreateTime").val(); // 添加时间
                let txtUpdateTime = $("#UpdateTime").val(); // 更新时间

                if ( txtName == undefined || txtName.length == 0) {
                    toastr.error('请填写站点名称名称！');
                    $("#Name").focus();
                    return;
                }

                if (txtUrlCombine == undefined || txtUrlCombine.length == 0) {
                    txtUrlCombine = "0";
                }
                if (txtAnnotationType == undefined || txtAnnotationType.length == 0) {
                    txtAnnotationType = "0";
                }
                if (txtValid == undefined || txtValid.length == 0) {
                    txtValid = "0";
                }

                // 字符串输入超长处理
                if (txtId && txtId.length > 36) {
                    toastr.error('站点ID超过设定长度36！');
                    $("#Id").focus();
                    return;
                }
                if (txtEncoding && txtEncoding.length > 10) {
                    toastr.error('站点编码超过设定长度10！');
                    $("#Encoding").focus();
                    return;
                }

                $("#btnSave").prop("disabled", "disabled");

                // 字符串中异常字符处理
                if (txtId != undefined && txtId.length > 0) {
                    txtId = txtId.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 站点ID
                }
                if (txtName != undefined && txtName.length > 0) {
                    txtName = txtName.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 站点名称
                }
                if (txtWebUrl != undefined && txtWebUrl.length > 0) {
                    txtWebUrl = txtWebUrl.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 站点地址
                }
                if (txtAddressObject != undefined && txtAddressObject.length > 0) {
                    txtAddressObject = txtAddressObject.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 地址对象
                }
                if (txtAddressNext != undefined && txtAddressNext.length > 0) {
                    txtAddressNext = txtAddressNext.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 下一页地址对象
                }
                if (txtContentObject != undefined && txtContentObject.length > 0) {
                    txtContentObject = txtContentObject.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 内容对象
                }
                if (txtContentNext != undefined && txtContentNext.length > 0) {
                    txtContentNext = txtContentNext.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 下一页内容对象
                }
                if (txtEncoding != undefined && txtEncoding.length > 0) {
                    txtEncoding = txtEncoding.replace(/'|\\|\"|\||>|<|\*|\?/g, ""); // 站点编码
                }

                let obj = {};
                obj.Id = txtId; // 站点ID
                obj.Name = txtName; // 站点名称
                obj.WebUrl = txtWebUrl; // 站点地址
                obj.AddressObject = txtAddressObject; // 地址对象
                obj.AddressNext = txtAddressNext; // 下一页地址对象
                obj.ContentObject = txtContentObject; // 内容对象
                obj.ContentNext = txtContentNext; // 下一页内容对象
                obj.Encoding = txtEncoding; // 站点编码
                obj.UrlCombine = txtUrlCombine; // 地址是否需要组合：0-不需要；1-网站地址 + 章节地址；2-小说地址 + 章节地址；
                obj.AnnotationType = txtAnnotationType; // 正文类型：0-文本；1-HTML；
                obj.Valid = txtValid; // 是否有效：0-否；1-是；
                obj.CreateTime = txtCreateTime; // 添加时间
                obj.UpdateTime = txtUpdateTime; // 更新时间

                //console.info(JSON.stringify(obj));

                $.ajax({
                    type: "POST",
                    url: "/WebSites//Save/?rnd=" + (Math.random() * 10),
                    data: JSON.stringify(obj),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (rst) {
                        //console.info(rst);
                        if (rst && rst.success) {

                            refreshTable();

                            $("#editModel").modal("hide");

                            $("#btnSave").prop("disabled", "");
                        } else {
                            $.alert({title: "错误提示!", content: rst.Message });
                        }
                    }
                });
            });

        });

